package com.gp.testonline.service.impl;

import com.gp.testonline.dao.ClassMapper;
import com.gp.testonline.dao.StudentMapper;
import com.gp.testonline.eo.ClassEOPage;
import com.gp.testonline.model.Class;
import com.gp.testonline.service.ClassService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/*
 *实现业务及流程接口当中的内容
 */
@Service
public class ClassServiceImpl implements ClassService {
    @Autowired
    private ClassMapper classMapper;
    @Autowired
    private StudentMapper studentMapper;

    /**
     * 班级添加方式实现
     * @param classes 班级实体
     * @return 是否成功（-1：有重复信息）
     */
    @Override
    public int InsertClass(Class classes) {
        int returnInt=0;
        /*
         * 业务判断
         * 班级名不能重复
         */
        int classNameCount=classMapper.getClassNameCount(classes.getCname());
        if (classNameCount<1){
            //数据添加
            int insertClassInt=classMapper.insertClass(classes);
            //返回值
            returnInt=insertClassInt;
        }else{
            returnInt=-1;//有相同班级名
        }
        return returnInt;
    }

    /**
     * 班级更新方式
     * @param classes 班级实体
     * @return 更新是否成功（-1：更新执行sql报错）
     */
    @Override
    public int UpdateClass(Class classes) {
        int isUpdate=0;
        /*1 业务判断
        * 班级名不能重复
        */
        int classNameCount=classMapper.getClassNameCount(classes.getCname());
        if (classNameCount<1){
            //数据更新
            isUpdate=classMapper.updateClass(classes);
        }else{
            isUpdate=-1;//有相同班名
        }
        return isUpdate;
    }

    /**
     * 班级删除
     * @param cid 班级id
     * @return 删除是否成功（-1：删除执行sql报错）
     */
    @Override
    public int DeleteClass(int cid) {
        /*
         *业务判断
         */
        //
        int deleteClass=0;

        try{
                deleteClass=classMapper.deleteClass(cid);
        }catch (Exception e){
            deleteClass=1;
            System.out.println("删除班级信息时执行sql报错，信息为："+e.getMessage());
        }
        return deleteClass;
    }

    @Override
    public List<ClassEOPage> getClassAll(ClassEOPage classEOPage) {
        List<ClassEOPage> listClassEo=classMapper.getClassAll(classEOPage);
        return listClassEo;
    }
}
